package com.crcode.crm.dao.system;

import com.crcode.crm.bean.system.NoticeBean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import java.util.List;
/**
 * 公告业务层 接口
 * @author xiangfei
 * @date 2019年3月25日 下午1:56:43
 * @version V1.0
 */
public interface NoticeDao extends JpaRepository<NoticeBean, Integer>, JpaSpecificationExecutor<NoticeBean> {

    /**
     * 根据id查找多个公告
     * @param ids ids
     * @return List<NoticeBean>
     */
    List<NoticeBean> findByIdIn(List<Integer> ids);

    /**
     * 搜索公告标题
     * @param search 搜索内容
     * @return List<NoticeBean>
     */
    Page<NoticeBean> findByNoticeTitleContaining(String search, Pageable page);

    /**
     * 删除多个公告
     * @param ids ids
     * @return long
     */
    long deleteByIdIn(List<Integer> ids);

    /**
     * 根据用户id删除公告
     * @param uuids 用户的id
     * @return long
     */
    long deleteByUserUuidIn(List<String> uuids);

    /**
     * 根据用户查找公告
     * @param uuids uuids
     * @return List<NoticeBean>
     */
    List<NoticeBean> findByUserUuidIn(List<String> uuids);
}
